home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 24
/
Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso
/
Aminet
/
biz
/
dopus
/
WolleDOpus.lha
/
wolledopus
/
dopus5
/
arexx
/
Mülleimer.dopus5
< prev
Wrap
Text File
|
1997-11-12
|
6KB
|
245 lines
/*
$VER: Mülleimer.dopus5 V0.3 (4.11.1997) © Marco Wollkopf
E-Mail: Marco.Wollkopf@t-online.de
Homepage: http://home.t-online.de/home/Marco.Wollkopf
Mülleimer für DOpus5.62+
erzeugt ein Mülleimer AppIcon auf dem DOpus Desktop, wird eine Datei oder
ein Verzeichnis auf das AppIcon gezogen wird es in ein Verzeichnis Deiner
wahl verschoben.
Einstellungen:
-----------------------------------------------
[ARexx] DOpus5:ARexx/Mülleimer.dopus5 {Qp}
-----------------------------------------------
*/
/* ------------------------ Bitte entsprechend Deiner Konfiguration ändern ------------------------ */
trash = 'WolleDisk:Trashcan' /* Verzeichnis in das verschoben werden soll (ohne /) */
pic = 'DOpus5:Icons/Trashcan' /* Piktogramm für den Mülleimer (Dateiname ohne .info!) */
text = 'Mülleimer' /* Piktogrammbeschriftung */
iconpos = 'DOpus5:Settings/pos_trash.icon' /* Datei in der die Iconposition gespeichert werden soll */
/* -------------------------------------- Ende Konfiguration -------------------------------------- */
options results
options failat 11
parse arg port
/* ---------------------------------------------- */
IF port ~= "" THEN /* port holen */
ADDRESS value(port)
ELSE DO
say "Script muß von DirOpus aufgerufen werden"
exit
END
/* ---------------------------------------------- */
if ~show('l','rexxsupport.library') then
call addlib('rexxsupport.library',0,-30,0)
/* --- set up menu items ------------------------ */
iconmenu.count=2
iconmenu.0='Inhalt anzeigen'
iconmenu.1='Mülleimer leeren'
call getpos /* --- iconposition holen --- */
/* --- add an icon ------------------------------ */
dopus addappicon 'trash-handler' text 1 position info snap close quotes local menu iconmenu. icon pic
icon=result
flag = 0
/* --- abfrage iconaktionen ---------------------- */
do while flag = 0
call openport('trash-handler')
call waitpkt('trash-handler')
packet=getpkt('trash-handler')
arg0=getarg(packet,0)
arg1=getarg(packet,1)
arg2=getarg(packet,2)
arg3=getarg(packet,3)
arg4=getarg(packet,4)
call reply(packet,0)
select
when arg0 = 'info' then call info
when arg0 = 'doubleclick' then call newlister
when arg0 = 'dropfrom' then call verschieben
when arg0 = 'snapshot' then call setpos
when arg0 = 'unsnapshot' then call delpos
when arg0 ='menu' then do
if arg2 = 0 then call newlister
if arg2 = 1 then call leeren
end
when arg0 = 'close' then flag = 1 /* --- schleife beenden --- */
when arg0 = 'removed' then flag = 2 /* --- schleife beenden --- */
end
end
/* --- icon entfernen --------------------------- */
if flag~=2 then dopus remappicon icon
exit
/* --- neuen lister öffnen ---------------------- */
newlister:
lister new trash
tr = result
lister wait tr
lister set tr title "Mülleimer für DOpus"
lister set tr field 4 "Originalverzeichnis"
lister refresh tr full
lister set tr label "Mülleimer für DOpus"
return
exit
/* --- mülleimer leeren ------------------------- */
leeren:
dopus request "'Wirklich den Mülleimer leeren?"||D2C(10)||"Alle Daten gehen verloren!' _leeren|_nicht leeren"
if rc = 0 then return
lister new trash
handle = result
lister wait handle
lister set handle busy on wait
lister query handle entries stem ein.
/* alles selekt */
do c=0 to ein.count-1
lister select handle ein.c on
end
lister refresh handle
lister set handle busy off
command wait source handle delete
lister request handle '"Der Mülleimer ist jetzt geleert."'
lister close handle
return
exit
/* --- objekte in den mülleimer verschieben ----- */
verschieben:
/* --- wenn objekt vom desktop --- */
if arg3 = 0 then do
dopus request '"Der Mülleimer funktioniert nur mit Objekten aus Dateilistern"'
return
end
call makestem /* --- stem erzeugen --- */
lister query arg3 path
pfad = result
do c=0 to ein.count
command wait move '"'||pfad||ein.c||'"' to trash quiet
command wait comment '"'||trash||'/'||ein.c||'"' pfad
lister remove arg3 ein.c
end
lister refresh arg3 date
return
exit
makestem: /* --- stem aus arg2 erzeugen --- */
handle = arg3
lister query handle path
pfad = result
lister query handle mode /* --- listermodus holen --- */
modus = result
/* --- wenn modus text --- */
if modus = 'name' then do
files = arg2
c=0
ein.count = c
x=0
do while x=0 /* --- files holen --- */
files = delstr(files,pos('"',files),1)
file = substr(files,1,pos('"',files)-1)
files = delstr(files,1,pos('"',files)+1)
if files = "" then x=1
ein.c = file
c = c+1
if x=1 then do /* --- wenn nur eine dat selektiert dann von dopus .info nicht mit übergeben, korrektur dafür --- */
id c=1 then do
if exists(pfad||file||'.info') then do
ein.c = file||'.info'
c = c+1
end
end
end
if files= "" then /* --- wenn arg2 am ende --- */
ein.count = c-1
end
else do /* --- wenn listermodus nicht text --- */
files = arg2
c=0
ein.count = c
x=0
do while x=0
files = delstr(files,pos('"',files),1)
file = substr(files,1,pos('"',files)-1)
files = delstr(files,1,pos('"',files)+1)
if files = "" then x=1
ein.c = file
c = c+1
if exists(pfad||file||'.info') then do
ein.c = file||'.info'
c = c+1
end
if files= "" then
ein.count = c-1
end
end
return
exit
/* --- Iconpositionierung ------------------------ */
getpos: /* --- iconposition holen --- */
if open(posi,iconpos) then do
position = pos||" "||readln(posi)
call close(posi)
end
else position = ""
return
exit
setpos: /* --- iconposition setzen --- */
if open(posi,iconpos,w) then do
call writeln(posi,arg2)
call close(posi)
end
return
exit
delpos: /* --- iconposition löschen --- */
position = ""
if exists(iconpos) then do
command delete iconpos quiet
end
return
exit
/* --- programminformation ---------------------- */
info:
dopus request "'Mülleimer für DOpus V0.3 (11.11.1997)"||D2C(10)||D2C(10)||"Copyright 1997 by Marco Wollkopf"||D2C(10)||D2C(10)||"Kommentare, Fragen & Fehlermeldungen an:"||D2C(10)||"Marco.Wollkopf@t-online.de'"
return
exit